<pre id="sh_011_smart_tabs_a" class="brush: plain;">
    the     words   in      this    paragraph
    should  look    like    they    are
    evenly  spaced  between columns
</pre>

<pre id="sh_011_smart_tabs_b" class="brush: plain; tab-size: 8;">
    the words   in  this    paragraph
    should  look    like    they    are
    evenly  spaced  between columns
</pre>

<pre id="sh_011_smart_tabs_c" class="brush: plain; smart-tabs: false">
    the     words   in      this    paragraph
    should  look    out     of      whack
    because smart   tabs    are     disabled
</pre>

<script type="text/javascript">
queue(function()
{
    var $sh;

    module('011_smart_tabs');

    var evenLines = [
            'the     words   in      this    paragraph',
            'should  look    like    they    are',
            'evenly  spaced  between columns'
        ],
        unevenLines = [
            'the        words    in        this    paragraph',
            'should    look    out        of        whack',
            'because    smart    tabs    are        disabled'
        ]
        ;

    function fixSpaces(s)
    {
        s = encodeURIComponent(s).replace(/%C2%A0/g, '%20');
        return unescape(s).replace(/\s+$/g, '');
    };

    test('default tab size is 4', function()
    {
        $sh = $('#sh_011_smart_tabs_a');

        ok_sh($sh);
        ok_toolbar($sh);
        ok_code($sh);

        $sh.find('.code .line').each(function(index)
        {
            var s1 = fixSpaces($(this).text()),
                s2 = fixSpaces(evenLines[index])
                ;

            equal(s1, s2, 'Line ' + index);
        });
    });

    test('tab size changed to 8', function()
    {
        $sh = $('#sh_011_smart_tabs_b');

        ok_sh($sh);
        ok_toolbar($sh);
        ok_code($sh);

        $sh.find('.code .line').each(function(index)
        {
            var s1 = fixSpaces($(this).text()),
                s2 = fixSpaces(evenLines[index])
                ;

            equal(s1, s2, 'Line ' + index);
        });
    });

    test('smart tabs are off', function()
    {
        $sh = $('#sh_011_smart_tabs_c');

        ok_sh($sh);
        ok_toolbar($sh);
        ok_code($sh);

        $sh.find('.code .line').each(function(index)
        {
            var s1 = fixSpaces($(this).text()),
                s2 = fixSpaces(unevenLines[index])
                ;

            equal(s1, s2, 'Line ' + index);
        });
    });
});
</script>
